<?php
namespace ImiApp\Module\Member\Model\Base;

use Imi\Model\Model as Model;
use Imi\Model\Annotation\DDL;
use Imi\Model\Annotation\Table;
use Imi\Model\Annotation\Column;
use Imi\Model\Annotation\Entity;

/**
 * 群聊天记录 基类
 * @Entity
 * @Table(name="fa_chat_group", id={"id"})
 * @DDL("CREATE TABLE `fa_chat_group` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `group_id` int(10) unsigned DEFAULT NULL COMMENT '群ID',
  `send_uid` int(10) unsigned DEFAULT NULL COMMENT '发送者',
  `time` int(10) DEFAULT NULL COMMENT '发送时间',
  `content` varchar(2555) DEFAULT NULL COMMENT '发送内容',
  `type_status` enum('1','2','3','4','5','6') DEFAULT '1' COMMENT '类型:1=普通消息,2=图片,3=视频,4=文件,5=红包,6=表情',
  `red_id` int(10) unsigned DEFAULT NULL COMMENT '红包ID',
  `images` varchar(255) DEFAULT NULL COMMENT '图片',
  `video_file` varchar(255) DEFAULT NULL COMMENT '视频文件',
  `file` varchar(255) DEFAULT NULL COMMENT '文件',
  `emote_id` int(10) unsigned DEFAULT NULL COMMENT '表情ID',
  `re_uid` int(10) unsigned DEFAULT NULL COMMENT '接收人',
  `ip` varchar(20) DEFAULT NULL COMMENT 'IP',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='群聊天记录'")
 * @property int $id 
 * @property int $groupId 群ID
 * @property int $sendUid 发送者
 * @property int $time 发送时间
 * @property string $content 发送内容
 * @property string $typeStatus 类型:1=普通消息,2=图片,3=视频,4=文件,5=红包,6=表情
 * @property int $redId 红包ID
 * @property string $images 图片
 * @property string $videoFile 视频文件
 * @property string $file 文件
 * @property int $emoteId 表情ID
 * @property int $reUid 接收人
 * @property string $ip IP
 */
abstract class ChatGroupBase extends Model
{
    /**
     * id
     * @Column(name="id", type="int", length=10, accuracy=0, nullable=false, default="", isPrimaryKey=true, primaryKeyIndex=0, isAutoIncrement=true)
     * @var int
     */
    protected $id;

    /**
     * 获取 id
     *
     * @return int
     */ 
    public function getId()
    {
        return $this->id;
    }

    /**
     * 赋值 id
     * @param int $id id
     * @return static
     */ 
    public function setId($id)
    {
        $this->id = $id;
        return $this;
    }

    /**
     * 群ID
     * group_id
     * @Column(name="group_id", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var int
     */
    protected $groupId;

    /**
     * 获取 groupId - 群ID
     *
     * @return int
     */ 
    public function getGroupId()
    {
        return $this->groupId;
    }

    /**
     * 赋值 groupId - 群ID
     * @param int $groupId group_id
     * @return static
     */ 
    public function setGroupId($groupId)
    {
        $this->groupId = $groupId;
        return $this;
    }

    /**
     * 发送者
     * send_uid
     * @Column(name="send_uid", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var int
     */
    protected $sendUid;

    /**
     * 获取 sendUid - 发送者
     *
     * @return int
     */ 
    public function getSendUid()
    {
        return $this->sendUid;
    }

    /**
     * 赋值 sendUid - 发送者
     * @param int $sendUid send_uid
     * @return static
     */ 
    public function setSendUid($sendUid)
    {
        $this->sendUid = $sendUid;
        return $this;
    }

    /**
     * 发送时间
     * time
     * @Column(name="time", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var int
     */
    protected $time;

    /**
     * 获取 time - 发送时间
     *
     * @return int
     */ 
    public function getTime()
    {
        return $this->time;
    }

    /**
     * 赋值 time - 发送时间
     * @param int $time time
     * @return static
     */ 
    public function setTime($time)
    {
        $this->time = $time;
        return $this;
    }

    /**
     * 发送内容
     * content
     * @Column(name="content", type="varchar", length=2555, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $content;

    /**
     * 获取 content - 发送内容
     *
     * @return string
     */ 
    public function getContent()
    {
        return $this->content;
    }

    /**
     * 赋值 content - 发送内容
     * @param string $content content
     * @return static
     */ 
    public function setContent($content)
    {
        $this->content = $content;
        return $this;
    }

    /**
     * 类型:1=普通消息,2=图片,3=视频,4=文件,5=红包,6=表情
     * type_status
     * @Column(name="type_status", type="enum", length=0, accuracy=0, nullable=true, default="1", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $typeStatus;

    /**
     * 获取 typeStatus - 类型:1=普通消息,2=图片,3=视频,4=文件,5=红包,6=表情
     *
     * @return string
     */ 
    public function getTypeStatus()
    {
        return $this->typeStatus;
    }

    /**
     * 赋值 typeStatus - 类型:1=普通消息,2=图片,3=视频,4=文件,5=红包,6=表情
     * @param string $typeStatus type_status
     * @return static
     */ 
    public function setTypeStatus($typeStatus)
    {
        $this->typeStatus = $typeStatus;
        return $this;
    }

    /**
     * 红包ID
     * red_id
     * @Column(name="red_id", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var int
     */
    protected $redId;

    /**
     * 获取 redId - 红包ID
     *
     * @return int
     */ 
    public function getRedId()
    {
        return $this->redId;
    }

    /**
     * 赋值 redId - 红包ID
     * @param int $redId red_id
     * @return static
     */ 
    public function setRedId($redId)
    {
        $this->redId = $redId;
        return $this;
    }

    /**
     * 图片
     * images
     * @Column(name="images", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $images;

    /**
     * 获取 images - 图片
     *
     * @return string
     */ 
    public function getImages()
    {
        return $this->images;
    }

    /**
     * 赋值 images - 图片
     * @param string $images images
     * @return static
     */ 
    public function setImages($images)
    {
        $this->images = $images;
        return $this;
    }

    /**
     * 视频文件
     * video_file
     * @Column(name="video_file", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $videoFile;

    /**
     * 获取 videoFile - 视频文件
     *
     * @return string
     */ 
    public function getVideoFile()
    {
        return $this->videoFile;
    }

    /**
     * 赋值 videoFile - 视频文件
     * @param string $videoFile video_file
     * @return static
     */ 
    public function setVideoFile($videoFile)
    {
        $this->videoFile = $videoFile;
        return $this;
    }

    /**
     * 文件
     * file
     * @Column(name="file", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $file;

    /**
     * 获取 file - 文件
     *
     * @return string
     */ 
    public function getFile()
    {
        return $this->file;
    }

    /**
     * 赋值 file - 文件
     * @param string $file file
     * @return static
     */ 
    public function setFile($file)
    {
        $this->file = $file;
        return $this;
    }

    /**
     * 表情ID
     * emote_id
     * @Column(name="emote_id", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var int
     */
    protected $emoteId;

    /**
     * 获取 emoteId - 表情ID
     *
     * @return int
     */ 
    public function getEmoteId()
    {
        return $this->emoteId;
    }

    /**
     * 赋值 emoteId - 表情ID
     * @param int $emoteId emote_id
     * @return static
     */ 
    public function setEmoteId($emoteId)
    {
        $this->emoteId = $emoteId;
        return $this;
    }

    /**
     * 接收人
     * re_uid
     * @Column(name="re_uid", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var int
     */
    protected $reUid;

    /**
     * 获取 reUid - 接收人
     *
     * @return int
     */ 
    public function getReUid()
    {
        return $this->reUid;
    }

    /**
     * 赋值 reUid - 接收人
     * @param int $reUid re_uid
     * @return static
     */ 
    public function setReUid($reUid)
    {
        $this->reUid = $reUid;
        return $this;
    }

    /**
     * IP
     * ip
     * @Column(name="ip", type="varchar", length=20, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $ip;

    /**
     * 获取 ip - IP
     *
     * @return string
     */ 
    public function getIp()
    {
        return $this->ip;
    }

    /**
     * 赋值 ip - IP
     * @param string $ip ip
     * @return static
     */ 
    public function setIp($ip)
    {
        $this->ip = $ip;
        return $this;
    }

}
